With development of multimedia applications, it has been popular to handle integrally all kinds of media information such as video, audio and text. Since digitized images have an enormous amount of data, image information compression techniques are absolutely essential for storage and transmission of such information. It is also important to standardize such compression techniques for interoperation of compressed image data. There exist international standards for image compression techniques, such as H.261 and H.263 standardized by ITU-T (International Telecommunication Union—Telecommunication Standardization Sector) and MPEG-1, MPEG-2 and MPEG-4 standardized by ISO (International Organization for Standardization). ITU is now working for standardization of H.26L as the latest standard for image coding.
Coding of moving pictures, in general, compresses information amount by reducing redundancy in both temporal and spatial directions. Therefore, in inter-picture prediction coding, which aims at reducing the temporal redundancy, motion of a current picture is estimated on a block-by-block basis with reference to preceding or subsequent pictures so as to generate predictive images of the current picture, and then differential values between the obtained predictive images and the current picture are coded.
Here, the term “picture” represents a single sheet of an image, and it represents a frame when used in a context of a progressive image, whereas it represents a frame or a field in a context of an interlaced image. The interlaced image here is a single frame that is made up of two fields having different times respectively. In the process of coding and decoding the interlaced image, a single frame can be handled as a frame, as two fields, or as a frame structure or a field structure on every block in the frame.
The following description will be given assuming that a picture is a frame in a progressive image, but the same description can be given even assuming that a picture is a frame or a field in an interlaced image.
FIG. 35 is a diagram for explaining types of pictures and reference relations between them.
A picture like Picture I1, which is intra-picture prediction coded without reference to any pictures, is referred to as an I-picture. A picture like Picture P10, which is inter-picture prediction coded with reference to one picture, is referred to as a P-picture. And a picture, which can be inter-picture prediction coded with reference to two pictures at the same time, is referred to as a B-picture. B-pictures, like Pictures B6, B12 and B18, can refer to two pictures located in arbitrary temporal directions. Reference pictures can be specified on a block-by-block basis, on which motion is estimated, and they are discriminated between a first reference picture which is described earlier in a bit stream including the coded pictures and a second reference picture which is described later in the bit stream. However, it is required in order to code and decode above pictures that the reference pictures be already coded and decoded. FIGS. 36A and 36B show examples of order of pictures in which B-pictures are coded and decoded. FIG. 36A shows a display order of the pictures, and FIG. 36B shows a coding and decoding order reordered from the display order as shown in FIG. 36A. These drawings show that the pictures are reordered so that the pictures which are referred to by Pictures B3 and B6 are previously coded and decoded.
Next, reference indices for specifying reference pictures will be explained with reference to FIG. 37 and FIG. 38. For the sake of simplicity, numbers for identifying actual pictures are referred to as picture numbers, while numbers used for specifying reference pictures for inter-picture prediction are referred to as reference indices. Particularly, indices indicating first reference pictures and second reference pictures are referred to as first reference indices and second reference indices, respectively. Default values as shown in FIG. 37 are usually assigned to the reference indices in an initial state, but the assignment can be changed according to commands.
FIG. 37 shows the assignment of two reference indices to the picture numbers in the initial state of frame coding, and FIG. 38 shows an assignment of reference indices updated using commands from the assignment as shown in FIG. 37. When there is a sequence of pictures ordered in coding order, picture numbers are assigned to the pictures stored in a memory in coding order.
Commands for assigning the reference indices to the picture numbers are described in a header of a slice that is the smaller unit of coding than a picture, and thus the assignment can be updated every time one slice is coded. It is possible to use a differential value between an original picture number and an updated picture number as the above command and code an arbitrary number of such commands as a command sequence. The first command in the command sequence is applied to a picture number of a current picture and indicates a picture number corresponding to a reference index number “0”. The second command in the command sequence is applied to the picture number corresponding to the reference index number “0” and indicates a picture number corresponding to a reference index number “1”. The third command is applied to the picture number corresponding to the reference index number “1” and indicates a picture number corresponding to a reference index number “2”. The same applies to the fourth and the following commands. In the example of the first reference indices in FIG. 38, a command “−2” is given first and thus the reference index number “0” is assigned to the picture with its number “11” by adding “−2” to the picture number “13” of the current picture. Next, a command “+1” is given and thus the reference index number “1” is assigned to the picture with its number “12” by adding “+1” to the picture number “11” corresponding to the reference index number “0”. The following picture numbers are assigned to the reference index numbers in the same manner. The same goes for the second reference indices.
FIG. 39 is a schematic diagram showing an example of a bit stream generated as a result of the above-mentioned coding. As shown in this figure, the maximum number of reference indices Max_idx1 for the first reference pictures (ref1) and the maximum number of reference indices Max_idx2 for the second reference pictures (ref2) are described in the picture common information of the bit stream, and the reference index assignment command sequences idx_cmd1 and idx_cmd2 for ref1 and ref2 are described in the slice header.
A document related to the above conventional technology is ITU-T Rec. H.264|ISO/IEC 14496-10 AVC Joint Final Committee Draft of Joint Video Specification (2002-8-10) (P.54, 8.3.6.3 Default index orders/P.56, 8.3.6.4 Changing the default index orders).
By the way, as a method of coding an interlaced image, frame coding and field coding can be used by switching them per block in one picture. This is referred to as Macroblock Adaptive Frame/Field Coding (hereinafter referred to as MBAFF). In this method, frame coding and field coding can be switched per a pair of two macroblocks placed above and below, as shown in FIG. 40. In a case of frame coding, both macroblocks are coded as a frame structure, while in a case of field coding, a macroblock consisting of odd-numbered lines and a macroblock consisting of even-numbered lines are coded separately.
In MBAFF, as shown in FIGS. 41A and 41B, reference pictures are used for reference by switching them between a frame structure and a field structure depending on the coding methods of the macroblock pairs. When a current macroblock pair is coded as a frame structure as shown in FIG. 41A, Pictures P1˜P3 are referred to as frames. When a current macroblock pair is coded as a field structure as shown in FIG. 41B, the pictures are separated into top fields and bottom fields, Pictures P1T˜P3B, and referred to as respective fields. At this time, the number of reference pictures, which is the number of top and bottom fields, is twice the number of frames.
However, the maximum number of reference indices (See max_idx1 and max_idx2 in FIG. 39) and the command sequences (See idx_cmd1 and idx_cmd2 in FIG. 39) for updating the assignment, which are used for assigning reference indices to respective pictures, cannot be applied to both frames and fields at the same time. Therefore, there is a problem that the maximum number of reference indices and the assignment commands cannot be appropriately determined in a case of MBAFF.